home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2006 May / PCpro_2006_05.ISO / files / mobile / fma-2.0-stable-setup.exe / {app} / source / uConnProgress.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2004-07-07  |  3.9 KB  |  167 lines

  1. unit uConnProgress;
  2.  
  3. {
  4. *******************************************************************************
  5. * Descriptions: Main Unit for FMA
  6. * $Source: /cvsroot/fma/fma/uConnProgress.pas,v $
  7. * $Locker:  $
  8. *
  9. * Todo:
  10. *
  11. * Change Log:
  12. * $Log: uConnProgress.pas,v $
  13. * Revision 1.6  2004/07/07 08:10:46  z_stoichev
  14. * Common Wizard Image usage
  15. *
  16. * Revision 1.5  2003/12/11 11:56:16  z_stoichev
  17. * Fixed multiple progress + uploads issue
  18. *
  19. * Revision 1.4  2003/11/28 09:38:07  z_stoichev
  20. * Merged with branch-release-1-1 (Fma 0.10.28c)
  21. *
  22. * Revision 1.3.2.3  2003/11/11 18:10:01  z_stoichev
  23. * Use common background.
  24. *
  25. * Revision 1.3.2.2  2003/10/31 14:51:58  z_stoichev
  26. * Change color scheme, add background image.
  27. *
  28. * Revision 1.3.2.1  2003/10/27 07:22:54  z_stoichev
  29. * Build 0.1.0 RC1 Initial Checkin.
  30. *
  31. * Revision 1.3  2003/10/22 13:15:04  z_stoichev
  32. * Make progress dialog optional.
  33. *
  34. *
  35. *
  36. }
  37.  
  38. interface
  39.  
  40. uses
  41.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  42.   Dialogs, StdCtrls, ComCtrls, ExtCtrls, SEProgress, jpeg;
  43.  
  44. type
  45.   { Do not create/destroy this form by yourself!!!
  46.     Instead use two methods below:
  47.       - GetProgressDialog
  48.       - FreeProgressDialog }
  49.   TfrmConnect = class(TForm)
  50.     Label1: TLabel;
  51.     Button1: TButton;
  52.     SEProgress1: TSEProgress;
  53.     Timer1: TTimer;
  54.     Timer2: TTimer;
  55.     Image1: TImage;
  56.     procedure Button1Click(Sender: TObject);
  57.     procedure Timer1Timer(Sender: TObject);
  58.     procedure Timer2Timer(Sender: TObject);
  59.     procedure FormCreate(Sender: TObject);
  60.   private
  61.     { Private declarations }
  62.   public
  63.     { Public declarations }
  64.     procedure Initialize(MaxProgress: integer; Descr: string = '');
  65.     procedure SetDescr(Descr: string);
  66.     procedure ShowProgress(Delayed: boolean = False);
  67.     procedure IncProgress(Delta: integer);
  68.   end;
  69.  
  70. var
  71.   frmConnect: TfrmConnect;
  72.  
  73. { Return the current progress form. Should not free! }
  74. function GetProgressDialog: TfrmConnect;
  75. { Release progress form usage. }
  76. procedure FreeProgressDialog;
  77.  
  78. implementation
  79.  
  80. uses Unit1;
  81.  
  82. {$R *.dfm}
  83.  
  84. const
  85.   ProgressUsage: integer = 0;
  86.  
  87. function GetProgressDialog: TfrmConnect;
  88. var
  89.   i: integer;
  90. begin
  91.   Result := nil;
  92.   inc(ProgressUsage);
  93.   for i := 0 to Screen.FormCount-1 do
  94.     if Screen.Forms[i] is TfrmConnect then begin
  95.       Result := Screen.Forms[i] as TfrmConnect;
  96.       break;
  97.     end;
  98.   if Result = nil then begin
  99.     frmConnect := TfrmConnect.Create(nil);
  100.     Result := frmConnect;
  101.   end;
  102.   Result.SEProgress1.Position := 0;
  103.   Result.SEProgress1.UnknownMax := True;
  104. end;
  105.  
  106. procedure FreeProgressDialog;
  107. begin
  108.   dec(ProgressUsage);
  109.   if ProgressUsage = 0 then
  110.     FreeAndNil(frmConnect);
  111. end;
  112.  
  113. { TfrmConnect }
  114.  
  115. procedure TfrmConnect.Initialize(MaxProgress: integer; Descr: string);
  116. begin
  117.   if Descr <> '' then begin
  118.     Label1.Caption := Descr;
  119.     if Visible then Label1.Update;
  120.   end;
  121.   Timer1.Enabled := False;
  122.   SEProgress1.Position := 0;
  123.   SEProgress1.Max := MaxProgress;
  124. end;
  125.  
  126. procedure TfrmConnect.Button1Click(Sender: TObject);
  127. begin
  128.   Form1.ActionConnectionAbort.Execute;
  129. end;
  130.  
  131. procedure TfrmConnect.Timer1Timer(Sender: TObject);
  132. begin
  133.   SEProgress1.StepForward;
  134. end;
  135.  
  136. procedure TfrmConnect.SetDescr(Descr: string);
  137. begin
  138.   Label1.Caption := Descr;
  139.   if Visible then Label1.Update;
  140. end;
  141.  
  142. procedure TfrmConnect.IncProgress(Delta: integer);
  143. begin
  144.   SEProgress1.Position := SEProgress1.Position + Delta;
  145. end;
  146.  
  147. procedure TfrmConnect.ShowProgress(Delayed: boolean = False);
  148. begin
  149.   Timer2.Enabled := Delayed and not Visible;
  150.   if not Timer2.Enabled then Timer2Timer(nil);
  151. end;
  152.  
  153. procedure TfrmConnect.Timer2Timer(Sender: TObject);
  154. begin
  155.   Timer2.Enabled := False;
  156.   Timer1.Enabled := SEProgress1.UnknownMax;
  157.   Show;
  158.   Update;
  159. end;
  160.  
  161. procedure TfrmConnect.FormCreate(Sender: TObject);
  162. begin
  163.   Image1.Picture.Assign(Form1.CommonBitmaps.Bitmap[1]);
  164. end;
  165.  
  166. end.
  167.